/*
 * @Description: 手动抛出异常对象
 * @Author: rendc
 * @Date: 2025-08-18 11:05:34
 * @LastEditors: rendc
 * @LastEditTime: 2025-08-18 11:37:41
 */

public class Test02 {
  // throws Exception 抛出异常到上一层 上一层去处理
  // 第一种异常处理方式
  // public static void main(String[] args) throws Exception {
  // 第二种处理方式
  public static void main(String[] args) {
    String username = "briup";
    String password = "123456";
    // 直接处理异常
    try {
      // 将有可能出现异常的代码到try中
      login(username, password);
    } catch (Exception e) {
      // TODO: handle exception
      // 处理异常
      System.out.println("e:" + e);
      System.out.println("e.getMessage():" + e.getMessage());
      System.out.println("e.printStackTrace():");
      // 自动处理异常输出的内容
      e.printStackTrace();
    }
  }

  // 当前方法中可能会存在编译时异常，如果程序员不去处理就无法通过编译
  // throws Exception 抛出异常到上一层 上一层去处理
  private static void login(String username, String password) throws Exception {
    if ("briup".equals(username) && "briup".equals(password)) {
      System.out.println("登录成功");
    } else {
      System.out.println("用户名或者密码错误");
      // 直接抛出编译异常 会导致编译报错
      throw new Exception("编译异常：登录失败异常");
      // 抛出异常 登录失败异常
      // throw new RuntimeException("登录失败异常");
    }
  }
}